package tables;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Properties;

import beans.Commentaire;

/*
 * http://www.siteduzero.com/tutoriel-3-119252-fouiller-dans-sa-bdd.html
 * 
 * La table commentaire contient :
 * Date date_c -- date
 * int note -- int
 * String comment -- varchar(500)
 * String pseudo_c -- varchar(20)
 * String pseudo_a_h -- varchar(20)
 * 
 */
public class JdbcCommentaire {

	/*
	 * InsÃ¨re "s" dans la table commentaire. Date, int, String, String, String
	 */
	public static void insere(Commentaire c) throws SQLException,
			ClassNotFoundException, IOException {
		// charger le driver
		Properties props = new Properties();
		FileInputStream fis = new FileInputStream(
				"/home/auberi/Documents/JEE/workspace_jee/Alibi/src/connInfoLocal.txt");
		props.load(fis);

		String passwd = props.getProperty("passwd");
		String url = props.getProperty("url");
		String user = props.getProperty("user");
		// charger le driver
		Class.forName("org.postgresql.Driver");
		// se connecter Ã la base de donnÃ©es
		Connection conn = DriverManager.getConnection(url, user, passwd);
		// issue a query (create a statement and execute a query on it)
		System.out.println("etape5");
		Statement state = (Statement) conn.createStatement();

		System.out.println("etape6");
		if (!(c.getDate() instanceof Date)
				|| !((Integer) c.getNote() instanceof Integer)
				|| !(c.getCommentaire() instanceof String)
				|| !(c.getPseu_user() instanceof String)

				|| !(c.getPseu_alibi() instanceof String)) {
			System.err.println("Vos arguments n'ont pas le bon type.");

		} else {
			// inserer

			String query = "INSERT INTO commentaire VALUES ('"
					+ convertDate(c.getDate()) + "', " + c.getNote() + ", "
					+ "'" + c.getCommentaire() + "', " + "'" + c.getPseu_user()
					+ "', " + "'" + c.getPseu_alibi() + "')";
			state.executeUpdate(query);
			state.close();

		}
	}

	public static String convertDate(java.util.Date d) {
		GregorianCalendar c = new GregorianCalendar();
		c.setTime(d);
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH);
		int day = c.get(Calendar.DAY_OF_MONTH);
		int hour = c.get(Calendar.HOUR_OF_DAY);
		int minute = c.get(Calendar.MINUTE);
		int second = c.get(Calendar.SECOND);
		return (year + "-" + month + "-" + day + " " + hour + ":" + minute
				+ ":" + second);
	}

	// public static void updateDate(ArrayList<Object> champRecherche1,
	// ArrayList<Object> champRecherche2, java.util.Date newValue)
	// throws SQLException, ClassNotFoundException, IOException {
	// ArrayList<String> champs = new ArrayList<String>();
	// ArrayList<String> tables = new ArrayList<String>();
	// tables.add("commentaire");
	// ResultSet r = JdbcAlibi.recherche(champs, tables, champRecherche1,
	// champRecherche2);
	// r.updateString("pseudo", JdbcCommentaire.convertDate(newValue));
	// r.updateRow();
	// }
	//
	// public static void updateNote(ArrayList<Object> champRecherche1,
	// ArrayList<Object> champRecherche2, int newValue)
	// throws SQLException, ClassNotFoundException, IOException {
	// ArrayList<String> champs = new ArrayList<String>();
	// ArrayList<String> tables = new ArrayList<String>();
	// tables.add("commentaire");
	// ResultSet r = JdbcAlibi.recherche(champs, tables, champRecherche1,
	// champRecherche2);
	// r.updateInt("note", newValue);
	// r.updateRow();
	// }
	//
	// public static void updateComment(ArrayList<Object> champRecherche1,
	// ArrayList<Object> champRecherche2, String newValue)
	// throws SQLException, ClassNotFoundException, IOException {
	// ArrayList<String> champs = new ArrayList<String>();
	// ArrayList<String> tables = new ArrayList<String>();
	// tables.add("commentaire");
	// ResultSet r = JdbcAlibi.recherche(champs, tables, champRecherche1,
	// champRecherche2);
	// r.updateString("comment", newValue);
	// r.updateRow();
	// }
	//
	// // pas sÃ»re que celui-lÃ soit trÃ¨s utile
	// public static void updatePseudo_c(ArrayList<Object> champRecherche1,
	// ArrayList<Object> champRecherche2, String newValue)
	// throws SQLException, ClassNotFoundException, IOException {
	// ArrayList<String> champs = new ArrayList<String>();
	// ArrayList<String> tables = new ArrayList<String>();
	// tables.add("commentaire");
	// ResultSet r = JdbcAlibi.recherche(champs, tables, champRecherche1,
	// champRecherche2);
	// r.updateString("pseudo_c", newValue);
	// r.updateRow();
	// }
	//
	// // pas sÃ»re que celui-lÃ soit trÃ¨s utile
	// public static void updatePseudo_a_h(ArrayList<Object> champRecherche1,
	// ArrayList<Object> champRecherche2, String newValue)
	// throws SQLException, ClassNotFoundException, IOException {
	// ArrayList<String> champs = new ArrayList<String>();
	// ArrayList<String> tables = new ArrayList<String>();
	// tables.add("commentaire");
	// ResultSet r = JdbcAlibi.recherche(champs, tables, champRecherche1,
	// champRecherche2);
	// r.updateString("pseudo_a_h", newValue);
	// r.updateRow();
	// }

	// public static void updateDate(ArrayList<Object> champRecherche1,
	// ArrayList<Object> champRecherche2, java.util.Date newValue)
	// throws SQLException, ClassNotFoundException, IOException {
	// ArrayList<String> champs = new ArrayList<String>();
	// ArrayList<String> tables = new ArrayList<String>();
	// tables.add("commentaire");
	// ResultSet r = JdbcAlibi.recherche(champs, tables, champRecherche1,
	// champRecherche2);
	// r.updateString("pseudo", JdbcCommentaire.convertDate(newValue));
	// r.updateRow();
	// }
	//

}
